<?php
/**
 * reset_schedule.php
 *
 * 说明：该脚本用于重置医生排班表中对应星期（昨天）的挂号数量，
 *        将上午、下午、夜间的剩余预约数量恢复到默认值（例如 10）。
 *        该脚本通过 URL 调用，请在宝塔计划任务中使用 curl 或 wget 调用：
 *          curl -s "http://yourdomain.com/reset_schedule.php?key=your_secret_key"
 *          http://mx.zaoyiwang.com/reset_schedule.php?key=your_secret_key
 * 注意：请将数据库连接参数和密钥修改为你实际的配置。
 */

// --- 简单的访问认证 ---
$secretKey = 'your_secret_key'; // 请修改为你自己的密钥
if (!isset($_GET['key']) || $_GET['key'] !== $secretKey) {
    http_response_code(403);
    die('Unauthorized access');
}

// --- 数据库连接参数 ---
$db_host = 'localhost';           // 数据库主机
$db_user = 'yygh_120gcw_com';    // 数据库用户名
$db_pass = 'aFZJKSaDe9NcGQwH';    // 数据库密码
$db_name = 'yygh_120gcw_com';       // 数据库名称

// --- 创建 MySQLi 连接 ---
$mysqli = new mysqli($db_host, $db_user, $db_pass, $db_name);
if ($mysqli->connect_error) {
    die("数据库连接失败: " . $mysqli->connect_error);
}
$mysqli->set_charset("utf8");

// --- 计算昨天日期及对应星期几 ---
$yesterday = date('Y-m-d', strtotime('-1 day'));
// date('N') 返回 1（周一）到 7（周日）
$week_day = (int) date('N', strtotime($yesterday));

// --- 设置默认恢复的挂号数量 ---
// $default_morning   = 10;
// $default_afternoon = 10;
// $default_night     = 10;
// --- 设置默认恢复的挂号数量（使用 3-10 随机数） ---
$default_morning   = rand(3, 10);
$default_afternoon = rand(3, 10);
$default_night     = rand(3, 10);
$update_time       = time();

// --- 执行更新语句 ---
// 更新排班表，将对应星期几的医生挂号数量恢复为默认值
$sql = "UPDATE yoshop_goods_weekly_schedule 
        SET morning_num = ?, afternoon_num = ?, night_num = ?, update_time = ? 
        WHERE week_day = ?";
$stmt = $mysqli->prepare($sql);
if (!$stmt) {
    die("SQL 预处理失败: " . $mysqli->error);
}

// 使用 "iiiii" 表示 5 个整型参数
$stmt->bind_param("iiiii", $default_morning, $default_afternoon, $default_night, $update_time, $week_day);
if (!$stmt->execute()) {
    die("SQL 执行失败: " . $stmt->error);
}

// 输出结果
echo "排班重置成功！已更新星期 {$week_day} 的记录，影响行数：" . $stmt->affected_rows;

// 关闭连接
$stmt->close();
$mysqli->close();
?>